package com.minglv.mini.service;

import com.minglv.mini.domain.Activity;
import com.minglv.mini.domain.dto.ApplyDto;
import org.apache.ibatis.annotations.Param;

import java.io.IOException;
import java.util.List;
import java.util.Map;

public interface IActivityService {

    /**
     * 获得活动列表
     * @param active_num
     * @return
     */
    public List<Map> list(Integer active_num);

    /**
     * 首页推荐活动列表
     * @param isIndex
     * @return
     */
    List<Map> getIndexList(Integer isIndex);

    /**
     * 获得活动信息
     * @param active_id
     * @return
     */
    public Map getActivityInfo(Integer active_id);

    /**
     * 是否收藏
     * @param token
     * @param itemId
     * @param type
     * @return
     */
    public Object iscollect(String token,Integer itemId,Integer type);

    /**
     * 收藏
     * @param token
     * @param id
     * @return
     */
    public Object collect(String token,Long id);

    public Object share(String token,Long id) throws IOException;

    List<Map> getListbyUserId(Integer status,Long userId);

    /**
     * 报名活动
     * @param apply
     * @return
     */
    public Object postApply(String token,ApplyDto apply);

    /**
     * 查询【请填写功能名称】
     *
     * @param id 【请填写功能名称】主键
     * @return 【请填写功能名称】
     */
    public Activity selectActivityById(Long id);

    /**
     * 查询【请填写功能名称】列表
     *
     * @param activity 【请填写功能名称】
     * @return 【请填写功能名称】集合
     */
    public List<Activity> selectActivityList(Activity activity);

    /**
     * 新增【请填写功能名称】
     *
     * @param activity 【请填写功能名称】
     * @return 结果
     */
    public int insertActivity(Activity activity);

    /**
     * 修改【请填写功能名称】
     *
     * @param activity 【请填写功能名称】
     * @return 结果
     */
    public int updateActivity(Activity activity);

    /**
     * 批量删除【请填写功能名称】
     *
     * @param ids 需要删除的【请填写功能名称】主键集合
     * @return 结果
     */
    public int deleteActivityByIds(Long[] ids);

    /**
     * 删除【请填写功能名称】信息
     *
     * @param id 【请填写功能名称】主键
     * @return 结果
     */
    public int deleteActivityById(Long id);

}
